The present invention generally relates to the area of digital color image encoding schemes, and more particularly to systems utilized to store digital data corresponding to color images according to particular attribute (e.g., color) data encoding formats.
As will be appreciated by those skilled in the art, there are multiple ways in which to encode image data for a digital image. A simple form of image data storage is monochromatic. In such instance individual picture image elements are defined by a single radiance (brightness) level.
However, as various elements of computer technology advanced, including displays, memory, and processors, color displays became commercially viable and a number of color image digital data encoding schemes have been adopted and/or proposed. Currently a very large number of application and systems are programmed to utilize an in range 8-bit RGB digital color image data encoding scheme.
Turning briefly to FIG. 1, a two-dimensional space represents the components of a three-dimensional CIE Yxy color image space. A first closed shape 10 represents the color space viewable by a normal human eye. A triangle 12, completely enclosed within the boundaries of closed shape 10, represents the extent of the color space represented by in-range sRGB color encoding schemes.
As used herein, the term xe2x80x9cin-rangexe2x80x9d refers to values falling within the range of values expected in a legacy color encoding scheme. The lowest value in the range typically corresponds to the minimum intensity for a color channel and the highest value corresponds to the maximum intensity value for the color channel. For example, in the context of the sRGB color encoding scheme, in-range values are equal to, or greater than, zero and equal to, or less than, one.
It is noted that the individual values represented in the in-range sRGB color encoding scheme actually occupy discrete points within the region bounded by the triangle 12. As a larger number of bits are used to digitally encode a color image within in-range color encoding schemes, the precision of color, rather than the range of color, increases. For example, an in-range 8-bit sRGB color encoding scheme (IEC 61966-2-1) supports 256 levels of brightness for each of the three color channels. An in-range 10-bit sRGB scheme supports four times as many levels. However, the lowest and highest values are the same in both the 8-bit and 10-bit sRGB schemes. Thus, the range of color values, demarcated by the triangle 12, is the same for both the 8-bit, 10-bit and even 12-bit in-range sRGB color image encoding schemes.
One of the shortcomings of the in-range sRGB color encoding schemes, as graphically illustrated in FIG. 1, is the inability to store for later production the full range of colors perceived by the human eye. As shown in FIG. 1, the range of colors representing the capabilities of the human eye exceed the range represented by in-range sRGB values. Thus, digitized color images such as digital photographs, represented in one of the in-range sRGB format, may not adequately re-create the range of color present in original images.
Most applications obtain satisfactory image reproduction from in-range digitized sRGB data. However in certain applications such as high quality digital photography, the color range restrictions imposed by in-range sRGB encoding are undesirable and unacceptable. In response to the range limitations of in-range sRGB and demand for better colorization and/or original color re-creation from stored digital images, an expanded color representation scheme (color space), scRGB (IEC 61966-2-1), has been developed. The image spectrum of scRGB covers an extended color space 14 including the entire human perceivable color space 12, which in turn encompasses the entire in-range sRGB xe2x80x9clegacy systemxe2x80x9d color space. The scRGB color space includes all real world object colors, a dynamic range that is greater than photographic transparency film.
The scRGB color space is an over-ranging color space. As used herein, an over-ranging color space is one that, in addition to in-range digital values (from zero to one) of the above-mentioned in-range sRGB schemes, also supports encoding images by color channel values below zero and/or greater than one. A floating point encoding of the scRGB color space is a signed, over-ranging color space. xe2x80x9cSigned,xe2x80x9d refers to the specific capability to specify negative color values. An integer-based encoding of the scRGB color space is an unsigned, over-ranging color space. The signed portion of signed scRGB color space is handled by a specified offset in the integer-based scRGB color scheme.
Legacy in-range sRGB imaging systems only support in-range color channel values. In-range color channel values are equal to, or greater than, zero and equal to, or less than, one. As a result legacy sRGB imaging systems, which make up the vast majority of imaging systems that will be present for many years, do not support this enhanced color scheme. If presented with an image file stored in the scRGB format, the legacy systems will be unable to read the image data in a manner that renders a useful image in the more limited legacy format (e.g., sRGB). A certain degree of compatibility between scRGB data and in-range formats is desirable.
One way to ensure compatibility with in-range legacy formats, such as sRGB, is to provide all images in two formats. A first version is in the in-range legacy sRGB format. A second version is follows the signed, over-ranging scRGB format. However, image files are notoriously large to begin with. Supporting multiple color spaces by providing multiple versions is a very costly solution.
The present invention comprises a new method and structure for encapsulating stored over-ranging color image data. The resulting data storage format renders color image data sets encoded in the over-ranging format compatible with in-range color image systems. Thus, color images including over-ranging portions will be readable by legacy systems that handle only in-range color data.
The new arrangement of the color image data storage comprises a file header segment describing contents of a color image file. Such headers come in many forms and depend in large part upon the particular file format (e.g., BMP, TIFF, etc.). The new arrangement also includes an image data segment comprising digital image data representing a set of color image elements encoded in a signed over-ranged color space. The over-ranging portion of the image data cannot be handled by legacy in-range systems, and thus a multi-partitioned color image bitmap data segment is created.
A first partition in the multi-partitioned bitmap data segment includes image data corresponding to a first color image data word portion associated with an in-range color space. The first portion is, by way of example, 8-bit lowest precision in-range color channel data.
A second partition in the multi-partitioned bitmap data segment includes image data corresponding to a second color image data word portion associated with an over-ranging color space. The second portion is, by way of example, a sign bit as well as over-ranging bits providing a range of color values between xe2x88x924 and 4. The second partition may optionally include additional precision bits that are concatenated with the lowest precision in-range color channel data of the first partition.
Furthermore, the present invention is embodied in encoders that comprise computer instructions for storing over-ranging color channel data in the format summarized above. The present invention is also embodied in decoders that render color images from the multi-partitioned over-ranging color image files including over-ranging color channel data.